/*．学生成绩统计（一维数组）
从键盘输入一个班（全班最多不超过30人）学生某门课的成绩，当输入成绩为负值时，输入结束，分别实现下列功能：
（1）统计不及格人数并打印不及格学生名单；
（2）统计成绩在全班平均分及平均分之上的学生人数，并打印这些学生的名单；
（3）以直方图方式统计各分数段的学生人数及所占的百分比。形式如下：
分数段  学生人数	  图形
<60   3（10%）	***
60-69  8（…）	********
70-79	 7（…）	*******
80-89	 8（…）	********
>=90	 4（…）	****
*/

#include<stdio.h>
#include<string.h>

int main()
{
	char  name[30][8];
	int grade[100];
	int i=1,n=0,j=0,k=0,p=0,l=0,m=0,g=0,h=0,d,N;
double sum,ave;
for(i=1;i<30;i++){
	
	printf("请输入姓名:");
	scanf("%s",&name[i]);
	printf("请输入成绩：");
	scanf("%d",&grade[i]);
sum+=grade[i];}
for(k=1;k<30;k++){
	if(grade[i]<60)
    {
	printf("不及格的名单：%s",name[k]);
    }
    N++;
}
printf("不及格的人数：%d",N);
ave=sum/30;
printf("全班的平均分为：%lf",ave);
for(i=1;i<30;i++){
if(grade[i]>ave){
	printf("成绩在平均分以上的同学名单有：%s",name[i]);
	j++;}}
printf("分数在平均分以上的总人数有：%d",j);
for(p=0;p<=i;p++)
	{
		if(grade[p]/10==6)l++;
		if(grade[p]/10==7)m++;
		if(grade[p]/10==8)h++;
		if(grade[p]>=90)g++;
	}
	printf("分数段      学生人数      图形\n");
	printf("0-59       %2d(%5.2f%%)      ",k,(float)k/(i+1)*100); 
	for(p=0;p<k;p++)printf("*");
	printf("\n60-69      %2d(%5.2f%%)      ",l,(float)l/(i+1)*100); 
	for(p=0;p<l;p++)printf("*");
	printf("\n70-79      %2d(%5.2f%%)      ",m,(float)m/(i+1)*100);
	for(p=0;p<m;p++)printf("*");
	printf("\n80-89      %2d(%5.2f%%)      ",h,(float)h/(i+1)*100);
	for(p=0;p<h;p++)printf("*");
	printf("\n89-100     %2d(%5.2f%%)      ",g,(float)g/(i+1)*100);
	for(p=0;p<g;p++)printf("*");
	printf("\n");

void print(int d);
{
	while(d--)
		printf("*");
	printf("\n");
}
return 0;
}